package jp.seraph.same.controller;

import jp.seraph.same.model.MotionSessionModel;

public interface MotionController {
    /**
     * 新しいSessionをaIndex番目に生成する
     *
     * @param aIndex
     * @param aName
     * @return
     */
    public MotionSessionModel createSession(int aIndex, String aName);

    public MotionSessionModel createBlankSession(int aIndex, int aLength);

    public MotionSessionModel getSession(int aIndex);

    public MotionSessionModel removeSession(int aIndex);

    public MotionSessionModel removeSession(MotionSessionModel aTarget);

    public void swapSession(int i, int j);

    public void delete();

    public void rename(String aNewName);

    public void renameSession(String aOldName, String aNewName);

    /**
     * 対象Sessionの位置を一つ上げます
     *
     * @param aSession
     */
    public void moveUp(MotionSessionModel aSession);

    /**
     * 対象セッションの位置を一つ下げます
     *
     * @param aSession
     */
    public void moveDown(MotionSessionModel aSession);
}
